//package com.weixin.controller;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
//import com.alibaba.fastjson.JSONObject;
//import com.fh.util.Logger;
//import com.weixin.bo.account.Account;
//import com.weixin.bo.media.RecevieMedia;
//import com.weixin.bo.menu.Menus;
//import com.weixin.bo.oauth.RecevieOauth2Token;
//import com.weixin.bo.oauth.RecevieSNSUserInfo;
//import com.weixin.sdk.api.AccessTokenApi;
//import com.weixin.sdk.api.ApiConfig;
//import com.weixin.sdk.api.ApiResult;
//import com.weixin.sdk.kit.PropKit;
//import com.weixin.tools.ToolMedia;
//import com.weixin.tools.ToolMenu;
//import com.weixin.tools.ToolOAuth2;
//import com.weixin.tools.ToolSignature;
//import com.weixin.tools.ToolTemplateMsg;
//import com.weixin.tools.ToolUser;
//
//
//public class WeixinApiController {
//	
//	private static Logger logger = Logger.getLogger(WeixinApiController.class);
//
//	
//	/**
//	 * 如果要支持多公众账号，只需要在此返回各个公众号对应的  ApiConfig 对象即可
//	 * 可以通过在请求 url 中挂参数来动态从数据库中获取 ApiConfig 属性值
//	 */
//	public ApiConfig getApiConfig() {
//		List<Account> list=Account.me.find("select * from account where weixinId=? limit 1",getPara("weixinId"));
//		return new ApiConfig((String)list.get(0).get("token"), (String)list.get(0).get("appId"), (String)list.get(0).get("appSecret"),Boolean.getBoolean((String)list.get(0).get("encodingAesKey")),(String)list.get(0).get("messageEncrypt")); 
//	}
//	
//	/**
//	 * 获取token
//	 * http://lyg945.eicp.net/api?weixinId=gh_9bab6f0d29b3
//	 */
//	public void index() {
//		logger.info(AccessTokenApi.getAccessToken().getAccessToken());
//	}
//
//	
//	/**
//	 * 授权后的回调请求处理
//	 */
//	public void oauth2(){
//		
//		ApiConfig ac = getApiConfig();
//		String appId=ac.getAppId();
//		String appSecret=ac.getAppSecret();
//		
//		String weixinId=getPara("weixinId");//微信账号
//		String code = getPara("code");// 用户同意授权后，能获取到code
//		String backUrl=getPara("backUrl");//返回页面
//		String hostUrl=PropKit.get("hostUrl");//域名
//		
//		String redirectUri=ToolString.urlEncode(hostUrl+"/api/oauth2?weixinId="+weixinId+"&backUrl=/"+backUrl);		
//				
//		String result=ToolOAuth2.getOauth2Code(appId, redirectUri);
//		logger.info("result:"+result);
//		
//		if(!"authdeny".equals(code) ){
//			// 获取网页授权access_token
//			RecevieOauth2Token recevieOauth2Token = ToolOAuth2.getOauth2AccessToken(appId, appSecret, code);
//			// 网页授权接口访问凭证
//			String accessToken =recevieOauth2Token.getAccessToken();
//			// 用户标识
//			String openId=recevieOauth2Token.getOpenId();
//						
//			// 获取用户信息
//			RecevieSNSUserInfo snsUserInfo = ToolOAuth2.getSNSUserInfo(accessToken, openId);
//
//			// 设置要传递的参数
//			setAttr("snsUserInfo", snsUserInfo);
//			
//			logger.info(backUrl);
//
//		}
//	}
//	
//	
//
//	/**
//	 * 微信分享js
//	 * http://lyg945.eicp.net/api/jsApi?weixinId=gh_9bab6f0d29b3
//	 */
//	public void jsApi(){
//		String shareUrl = ("shareUrl");
//		
//		logger.info("shareUrl："+shareUrl);
//
//		try {
//				
//			String jsapi_ticket = ToolOAuth2.getJsApiToken(AccessTokenApi.getAccessToken().getAccessToken());
//			
////			jsapi_ticket="sM4AOVdWfPE4DxkXGEs8VCHieTVGGv5DaOeNcyMOkBGcRbKQSnI-HQb7IvaWhN35gR1CcrDWwFGgv4lROfnV4Q";
//			
//			logger.info("准备放入缓存："+jsapi_ticket);
//			
//			logger.info("最后:"+jsapi_ticket);
//
//			Map<String, String> ret = ToolSignature.sign(jsapi_ticket, shareUrl);
//
//			logger.info(ret);
//		} catch (Exception e) {
//			e.printStackTrace();
//			logger.info("");
//		}
//	}
//	
//	
//	/**
//	 * 获取公众号关注用户
//	 * http://lyg945.eicp.net/api/getFollowers?weixinId=gh_52e5b24d1015
//	 */
//	public void getFollowers() {
//		ApiResult apiResult = ToolUser.getFollows();
//		String openidObject=apiResult.get("data").toString();
//		
//		logger.info(openidObject);
//
//		String openidList=openidObject.substring(openidObject.indexOf("[")+1,openidObject.indexOf("]"));
//		String [] openidArray=openidList.trim().split(",");
//		
//		List<String> list=new ArrayList<String>();
//		for (String string : openidArray) {
//			list.add(string.trim());
//		}
//		
//		
//		String openids=JSONObject.toJSONString(list.toArray());
//		
//
//		ToolTemplateMsg.massSend(openids,"rFGTWuRBXUfdFyfi1SIJJdHVxzVQDFSH8UAhgmqcYDn6qks2i162672Kua1OXXyM");
//		
//
//		logger.info(apiResult.getJson());
//	}
//	
//	
//	/**
//	 * 上传下载文件
//	 * http://lyg945.eicp.net/api/downloadMedia?weixinId=gh_52e5b24d1015
//	 */
//	public void downloadMedia(){
//				
//		String hostUrl=PropKit.get("hostUrl");
//		
////		RecevieMedia recevieMedia = ToolMedia.uploadMedia("voice", "http://localhost:8080/weixinmpapi/test.mp3");
//		RecevieMedia recevieMedia = ToolMedia.uploadMedia("image", hostUrl+"/img/chuanxin.png");
//
//		/**
//		 * 下载多媒体文件
//		 */
////		ToolMedia.getMedia(accessToken, recevieMedia.getMedia_id(), "c:/www");
//		logger.info(recevieMedia.getMedia_id());
//	}
//	
//	
//	/**
//	 * 获取公众号菜单
//	 * http://lyg945.eicp.net/api/getMenu?weixinId=gh_52e5b24d1015
//	 */
//	public void getMenu() {
//		ApiResult apiResult = ToolMenu.getMenu();
//		if (apiResult.isSucceed())
//			logger.info(apiResult.getJson());
//		else
//			logger.info(apiResult.getErrorMsg());
//	}
//	
//	/**
//	 * 创建公众号菜单
//	 */
//	public void createMenu(){
//		ApiConfig ac = getApiConfig();
//		String appId=ac.getAppId();
//		
//		String weixinId=("weixinId");//微信账号
//		
//		Menus menu=ToolMenu.getMenuButton(weixinId,appId);
//		String jsonMenu = new JSONObject().toJSONString(menu);
//		logger.info(jsonMenu);
//
//		ApiResult apiResult = ToolMenu.createMenu(jsonMenu);
//		if (apiResult.isSucceed())
//			logger.info(apiResult.getJson());
//		else
//			logger.info(apiResult.getErrorMsg());
//	}
//	
//}
//
